package xcmg.device.dao.mapper.logistic;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import xcmg.device.dao.entity.logistic.LogisticWaybillDO;
import xcmg.device.service.vo.logistic.FeePageViewWaybillInfoVO;
import xcmg.device.service.vo.logistic.LogisticStatusDisplayBoardVO;
import xcmg.device.service.vo.logistic.LogisticWayBillListQueryParamVO;
import xcmg.device.service.vo.logistic.LogisticWaybillSelectResultVO;

import java.util.Date;
import java.util.List;

@Mapper
public interface LogisticWaybillMapper {

    int deleteByPrimaryKey(String id);

    int insert(LogisticWaybillDO record);

    int insertSelective(LogisticWaybillDO record);

    LogisticWaybillDO selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(LogisticWaybillDO record);

    List<LogisticWaybillDO> selectByListFilter(@Param("orgId") String orgId, @Param("filters") LogisticWayBillListQueryParamVO filters);

    int remove(@Param("id") String id);

    List<LogisticWaybillSelectResultVO> waybillsSelect(@Param("orgId") String orgId, @Param("filters") LogisticWayBillListQueryParamVO filters);

    FeePageViewWaybillInfoVO feePageViewWaybillInfo(String wayBillId);

    List<String> needAutoSignWaybills(String orgId);

    List<String> distinctOrgId();

    int batchSign(@Param("ids") List<String> ids, @Param("singDate") Date singDate);

    List<LogisticStatusDisplayBoardVO> logisticStatusDisplayBoard(String orgId);
}
